package com.gxc.binarySystem;

/**
 * 给定一个函数f，以p概率返回0，以1-p概率返回1。请加工出等概率返回0和1的函数g
 * 首选构造一个与f 相反的函数 p概率返回1，以1-p概率返回0
 */
public class EqualProbability3 {

    public static void main(String[] args) {

    }

    public static int f() {
        //以p概率返回0，以1-p概率返回1
        return 0;
    }

    public static int fanF() {
        return f()>0?0:1;
    }

    /**
     * f函数  fanF函数
     *   0      0
     *   0      1
     *   1      0
     *   1      1
     * @return
     */
    private static int g(){
        int i = f()+fanF();
        while (i ==1) {
            i = f()+fanF();
        }
        if (i == 0) return 0;
        else if (i ==2) return 1;
        return 0;
    }

}
